/*
 * function TreeNode(x) {
 *   this.val = x;
 *   this.left = null;
 *   this.right = null;
 * }
 */

/**
  * 
  * @param root TreeNode类 
  * @param sum int整型 
  * @return bool布尔型
  */
// 定义一个数组用来存放路径
var path = []
function hasPathSum( root ,  sum ) {
  // write code here
  if(root === null) return false // 如果根节点为null 什么都不做 就return 就ok
  path.push(root.val) // 把根节点存入路径中
  // 获得新的target
  sum = sum - root.val
  // 如果新的目标值等于0 并且节点的左右子树都是null 说明走到最后叶节点了
  if(sum===0 && root.left === null && root.right === null){
    return true
  }
  // 上面的条件不满足的话 就需要进行调用这个函数 判断左右节点
  // 如果这两个节点中有一个是真的的话 那么就返回true
  if(hasPathSum(root.left,sum) || hasPathSum(root.right,sum)){
    return true
  }
  path.pop()
}
module.exports = {
  hasPathSum : hasPathSum
};